package com.zhuoxin.dao.admin;

import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Restrictions;

import com.zhuoxin.bean.model.Company;
import com.zhuoxin.bean.model.CompanySO;
import com.zhuoxin.dao.BaseDAOImpl;

public class CompanyDAOImpl extends BaseDAOImpl<Company, CompanySO> implements CompanyDAO {

	@Override
	public String getHqlWhere(CompanySO so) {
		return null;
	}

	@Override
	public void setCriteriaParams(Criteria criteria, CompanySO so) {
		if(StringUtils.isNotEmpty(so.getName())){
			criteria.add(Restrictions.eq("code", StringUtils.trim(so.getCode())));
		}
		
		if(StringUtils.isNotEmpty(so.getName())){
			criteria.add(Restrictions.ilike("name", "%"+StringUtils.trim(so.getName())+"%"));
		}
		
		if(StringUtils.isNotEmpty(so.getMan())){
			criteria.add(Restrictions.eq("man", StringUtils.trim(so.getMan())));
		}
	}

	@Override
	public void setQueryParams(Query query, CompanySO so) {
		
	}

	@Override
	public void switchVO2PO(Company po, CompanySO so) {
		if(StringUtils.isNotEmpty(so.getName())){
			po.setName(StringUtils.trim(so.getName()));
		}
		
		if(StringUtils.isNotEmpty(so.getPhone())){
			po.setPhone(StringUtils.trim(so.getPhone()));
		}
		
		if(StringUtils.isNotEmpty(so.getFax())){
			po.setFax(StringUtils.trim(so.getFax()));
		}
		
		if(StringUtils.isNotEmpty(so.getMan())){
			po.setMan(StringUtils.trim(so.getMan()));
		}
		
		if(StringUtils.isNotEmpty(so.getAddress())){
			po.setAddress(StringUtils.trim(so.getAddress()));
		}
		
		if(StringUtils.isNotEmpty(so.getTel())){
			po.setTel(StringUtils.trim(so.getTel()));
		}
		
		if(StringUtils.isNotEmpty(so.getMobile())){
			po.setMobile(StringUtils.trim(so.getMobile()));
		}
		
		if(StringUtils.isNotEmpty(so.getQq())){
			po.setQq(StringUtils.trim(so.getQq()));
		}
		
		if(StringUtils.isNotEmpty(so.getCode())){
			po.setCode(StringUtils.trim(so.getCode()));
		}
		
		if(StringUtils.isNotEmpty(so.getEmail())){
			po.setEmail(StringUtils.trim(so.getEmail()));
		}
		
		if(StringUtils.isNotEmpty(so.getPostcode())){
			po.setPostcode(StringUtils.trim(so.getPostcode()));
		}
		
		if(StringUtils.isNotEmpty(so.getCaption())){
			po.setCaption(StringUtils.trim(so.getCaption()));
		}
	}
}
